An internal combustion engine in a modern motor vehicle is mentioned as an example of equipment controlled by at least two such devices. The engine may include different components, such as injection valves, throttle valves, actuators, or different sensors, such as temperature sensors, speed sensors, or an oxygen sensor. In such internal combustion engines, the devices also known as control units are used, for example, to control fuel supply, an ignition firing point, and other operating parameters of the engine. The control units are usually constructed around a microprocessor or microcontroller. Up to several hundred diagnostic functions may be implemented on the control units. These diagnostic functions check many different operating modes and components of the internal combustion engine during its operation. They make use of values of engine operating parameters, such as the temperature or the engine speed, which are supplied by the sensors installed in the engine. Some of the diagnostic functions proceed passively and simply read the values supplied by the sensors, while other diagnostic functions actively intervene in the engine operation, in order to extract the values supplied by the sensors. If an error is detected in an operating mode or a component of the engine by one of the diagnostic functions, then an information item regarding this error is stored in an error protocol in the form of an electronic data file, which may then be fetched out later by a scan tool. A warning signal may also be triggered on the instrument panel of the motor vehicle as a function of the relevance of the error.
Diagnostic functions implemented by different control units are not necessarily compatible with each other. For example, diagnostic functions intervening in the engine operation, for measuring specific operating parameters of the engine or one of its components in a particular state, may set other operating parameters of the internal combustion engine to predefined values for the time of the measurement. If a further diagnostic function, which accesses values of the operating parameters set by the diagnostic function actively intervening in the engine operation, runs concurrently to such an active diagnostic function, then this further diagnostic function arrives at an incorrect result. Therefore, it is necessary to prevent simultaneous execution of diagnostic functions, of which at least one interferes with the other.
For this purpose, in the case of known internal combustion engines having two control units, it is known, for example, that a time sequence can be set for the diagnostic functions implemented on the two control units, so that two diagnostic functions, of which at least one interferes with the other, do not run at one time. This execution sequence is transferred into a program code and fixedly stipulated to the control units. It is thereby no longer changeable during operation of the internal combustion engine.
Several considerable disadvantages result from this design approach. One of these disadvantages is the inadequate flexibility of such a system. If, for example, a new pair of diagnostic functions is later detected, of which at least one interferes with the other, then it is necessary to appropriately change the execution sequence of the diagnostic functions. In return, however, the program code must necessarily be changed at a high expense.
An additional, large disadvantage results from the fact that the fixed execution sequence of each diagnostic function stipulates a limited time window for its execution. Since suitable values of some operating parameters of the engine, such as a specific load or relative air mass flow rate, speed, or temperature, are often necessary for the execution of a diagnostic function, the situation often occurs in which these necessary values are just not present during the limited time window, which the diagnostic function is given for running. Therefore, the respective diagnostic function is not ready to be executed during the time window assigned to it. Therefore, the diagnostic function does not run, and the time window elapses without being utilized. Only within a later time window assigned to it does the diagnostic function have the opportunity to run again, it being, in turn, questionable if the operating-parameter values necessary for this will be present within this next time window.